﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;


namespace WindowsFormProject.Depo
{
    public partial class UrunFrm : Form
    {
        public UrunFrm()
        {
            InitializeComponent();
        }
        UrunIslemler.UrundetayIslemler  UDI = new UrunIslemler.UrundetayIslemler();
        UrunIslemler.UrunTut YeniUrun = new UrunIslemler.UrunTut();
        GenelIslemler GI= new GenelIslemler();
        bool updatemi = false;

        DBBaglantiDataContext db = new DBBaglantiDataContext();
        private void bt_kaydet_Click(object sender, EventArgs e)
        {
            var update = (from x in db.MErkezUrunlers where x.UrunId.Contains(UrunId.Text) select x).FirstOrDefault();
            if (update != null)
            {
                try
                {
                   
                    update.KatID = int.Parse(KatID.SelectedValue.ToString());
                    update.UrunADi = UrunADi.Text;
                    update.UrunAlisFiyati = decimal.Parse(UrunAlisFiyati.Text);
                    update.UrunBirimi = UrunBirimi.Text;
                    update.UrunIskontoOrani = decimal.Parse(UrunIskontoOrani.Text);
                    update.UrunKDV = decimal.Parse(UrunKDV.Text);
                    update.UrunKurSabitMi = UrunKurSabitMi.Checked;
                    update.UrunKuru = decimal.Parse(UrunKuru.Text);
                    update.UrunMaxIskontoOrani = decimal.Parse(UrunMaxIskontoOrani.Text);
                    update.UrunMuhasebeHesapNo = int.Parse(UrunMuhasebeHesapNo.Text);
                    update.UrunParaCinsi = UrunParaCinsi.Text;
                    update.UrunSatisCikisSebebi = UrunSatisCikisSebebi.Text;
                    update.UrunSatisCikisTarihi = UrunSatisCikisTarihi.Value;
                    update.UrunSatisFiyati = decimal.Parse(UrunSatisFiyati.Text);
                    update.UrunSatisGirisTarihi = UrunSatisGirisTarihi.Value;
                    update.UrunSatistaMi = UrunSatistaMi.Checked;
                    update.UrunSiparisICinMinStok = decimal.Parse(UrunSiparisICinMinStok.Text);
                    update.UrunStokAdet = decimal.Parse(UrunStokAdet.Text);                   
                    db.SubmitChanges();
                    MessageBox.Show("Kayıt Güncellendi");
                }
                catch 
                {
                    
                   
                }
                
                
               
            }
            else
            {
                MErkezUrunler mu = new MErkezUrunler();
                mu.UrunId = UrunId.Text;
                mu.KatID = int.Parse(KatID.SelectedValue.ToString());
                mu.UrunADi = UrunADi.Text;
                mu.UrunAlisFiyati = decimal.Parse(UrunAlisFiyati.Text);
                mu.UrunBirimi = UrunBirimi.Text;
                mu.UrunIskontoOrani = decimal.Parse(UrunIskontoOrani.Text);
                mu.UrunKDV = decimal.Parse(UrunKDV.Text);
                mu.UrunKurSabitMi = UrunKurSabitMi.Checked;
                mu.UrunKuru = decimal.Parse(UrunKuru.Text);
                mu.UrunMaxIskontoOrani = decimal.Parse(UrunMaxIskontoOrani.Text);
                mu.UrunMuhasebeHesapNo = int.Parse(UrunMuhasebeHesapNo.Text);
                mu.UrunParaCinsi = UrunParaCinsi.Text;
                mu.UrunSatisCikisSebebi = UrunSatisCikisSebebi.Text;
                mu.UrunSatisCikisTarihi = UrunSatisCikisTarihi.Value;
                mu.UrunSatisFiyati = decimal.Parse(UrunSatisFiyati.Text);
                mu.UrunSatisGirisTarihi = UrunSatisGirisTarihi.Value;
                mu.UrunSatistaMi = UrunSatistaMi.Checked;
                mu.UrunSiparisICinMinStok = decimal.Parse(UrunSiparisICinMinStok.Text);
                mu.UrunStokAdet = decimal.Parse(UrunStokAdet.Text);
                db.MErkezUrunlers.InsertOnSubmit(mu);
                db.SubmitChanges();
            }


            //updatemi = false;

            //if ( UrunId.Text.Trim().Length == 0)
            //    return;
            //if (bt_kaydet_Urun_List(UrunId.Text.Trim()))
            //{
            //    if (updatemi == true)
            //    {
            //        MessageBox.Show("Kayıt Güncellendi");

            //    }
            //    else
            //        this.Close();
            //}

        }

        private bool bt_kaydet_Urun_List(string UrunId_text)
        {
            try
            {
                if (UDI.Get_RecordUrunCount(UrunId_text) > 0)
                {                   
                    YeniUrun.UrunId = UrunId.Text;
                    YeniUrun.UrunADi = UrunADi.Text;
                    YeniUrun.KatID = Convert.ToInt32(KatID.SelectedValue);
                    YeniUrun.UrunStokAdet = Convert.ToDecimal(UrunStokAdet.Text);
                    YeniUrun.UrunAlisFiyati = Convert.ToDouble(UrunAlisFiyati.Text);
                    YeniUrun.UrunSatisFiyati = Convert.ToDouble(UrunSatisFiyati.Text);
                    YeniUrun.UrunKDV = Convert.ToDecimal(UrunKDV.Text);
                    YeniUrun.UrunMaxIskontoOrani = Convert.ToDecimal(UrunMaxIskontoOrani.Text);
                    YeniUrun.UrunIskontoOrani = Convert.ToDecimal(UrunIskontoOrani.Text);
                    YeniUrun.UrunSiparisICinMinStok = Convert.ToDecimal(UrunSiparisICinMinStok.Text);
                    YeniUrun.UrunSatistaMi = Convert.ToBoolean(UrunSatistaMi.Checked);
                    YeniUrun.UrunSatisGirisTarihi = UrunSatisGirisTarihi.Text;
                    YeniUrun.UrunSatisCikisTarihi = UrunSatisCikisTarihi.Text;
                    YeniUrun.UrunSatisCikisSebebi = UrunSatisCikisSebebi.Text;
                    YeniUrun.UrunMuhasebeHesapNo = GI.DonusturToInt32(UrunMuhasebeHesapNo.Text);
                    YeniUrun.UrunBirimi = UrunBirimi.Text;
                    YeniUrun.UrunParaCinsi = UrunParaCinsi.Text;
                    YeniUrun.UrunKurSabitMi = Convert.ToBoolean(UrunKurSabitMi.Checked);
                    YeniUrun.UrunKuru = Convert.ToDouble(UrunKuru.Text);
                    UDI.UrunEkle(YeniUrun);
                    UDI.UrunKayitGuncelle(YeniUrun);
                    updatemi = true;
                   
                }
                YeniUrun.UrunId = UrunId.Text;
                YeniUrun.UrunADi = UrunADi.Text;
                YeniUrun.KatID =   Convert.ToInt32(KatID.SelectedValue);
                YeniUrun.UrunStokAdet = Convert.ToDecimal(UrunStokAdet.Text);
                YeniUrun.UrunAlisFiyati = Convert.ToDouble(UrunAlisFiyati.Text);
                YeniUrun.UrunSatisFiyati = Convert.ToDouble(UrunSatisFiyati.Text);
                YeniUrun.UrunKDV = Convert.ToDecimal(UrunKDV.Text);
                YeniUrun.UrunMaxIskontoOrani =Convert.ToDecimal(UrunMaxIskontoOrani.Text);
                YeniUrun.UrunIskontoOrani = Convert.ToDecimal(UrunIskontoOrani.Text);
                YeniUrun.UrunSiparisICinMinStok = Convert.ToDecimal(UrunSiparisICinMinStok.Text);
                YeniUrun.UrunSatistaMi = Convert.ToBoolean(UrunSatistaMi.Checked);
                YeniUrun.UrunSatisGirisTarihi = UrunSatisGirisTarihi.Text;
                YeniUrun.UrunSatisCikisTarihi = UrunSatisCikisTarihi.Text;
                YeniUrun.UrunSatisCikisSebebi= UrunSatisCikisSebebi.Text;
                YeniUrun.UrunMuhasebeHesapNo = GI.DonusturToInt32(UrunMuhasebeHesapNo.Text);
                YeniUrun.UrunBirimi = UrunBirimi.Text;
                YeniUrun.UrunParaCinsi = UrunParaCinsi.Text;
                YeniUrun.UrunKurSabitMi = Convert.ToBoolean(UrunKurSabitMi.Checked);
                YeniUrun.UrunKuru = Convert.ToDouble(UrunKuru.Text);
                UDI.UrunEkle(YeniUrun);
                UDI.UrunVeriTabaninaKayit(YeniUrun);
            }
            catch
            {
                return false;
            }

            return true;
        }
        private void UrunStokAdet_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (char.IsDigit (e.KeyChar) == false && e.KeyChar != (char)08 && e.KeyChar != '.' && e.KeyChar != ',' && e.KeyChar != (char)127 && e.KeyChar != (char)44)
           
            {
                e.Handled = true;

            }
        }

        private void UrunFrm_Load(object sender, EventArgs e)
        {
            KatID.DisplayMember = "KatagoriAdi";
            KatID.ValueMember = "KatID";
            KatID.DataSource = (from x in db.Kategorilers select x).ToList();
           // KatID.DataSource = GI.Kategoriler();
           
        }

        private void bt_iptal_Click(object sender, EventArgs e)
        {
            if (UrunId.Text.Trim().Length == 0)
                return;
            if (bt_Urun_delete(UrunId.Text.Trim()))
                this.Close();

        }

        private bool bt_Urun_delete(string UrunId_text)
        {
            try
            {
                if (UDI.Get_DeleteRecordUrunCount(UrunId_text) > 0)
                {
                    MessageBox.Show("Hareketi Olan Kayıt Silinemez");
                    return false;
                }

                UDI.Urundelete(UrunId_text);
            }
            catch
            {
                return false;
            }

            return true;
        }

        public void KayitGetir(string UrunId)
        {
            try
            {
                DataTable Urunler = UDI.Urunler(UrunId);

                    foreach (DataRow item in Urunler.Rows)
                    {
                        YeniUrun.UrunId = item[0].ToString();
                        YeniUrun.UrunADi = item[1].ToString();
                        YeniUrun.KatID =   Convert.ToInt32(item[2]);
                        YeniUrun.UrunStokAdet = Convert.ToDecimal(item[3]);
                        YeniUrun.UrunAlisFiyati = Convert.ToDouble(item[4]);
                        YeniUrun.UrunSatisFiyati = Convert.ToDouble(item[5]);
                        YeniUrun.UrunKDV = Convert.ToDecimal(item[6]);
                        YeniUrun.UrunMaxIskontoOrani = Convert.ToDecimal(item[7]);
                        YeniUrun.UrunIskontoOrani = Convert.ToDecimal(item[8]);
                        YeniUrun.UrunSiparisICinMinStok = Convert.ToDecimal(item[9]);
                        YeniUrun.UrunSatistaMi = Convert.ToBoolean(item[10]);
                        YeniUrun.UrunSatisGirisTarihi =  item[11].ToString();
                        YeniUrun.UrunSatisCikisTarihi = item[12].ToString();
                        YeniUrun.UrunSatisCikisSebebi = item[13].ToString();
                        YeniUrun.UrunMuhasebeHesapNo = Convert.ToInt32(item[14]);
                        YeniUrun.UrunBirimi = item[15].ToString();
                        YeniUrun.UrunParaCinsi = item[16].ToString();
                        YeniUrun.UrunKurSabitMi = Convert.ToBoolean( item[17].ToString());
                        YeniUrun.UrunKuru = Convert.ToDouble( item[18]);
                        YeniUrun.KatAdi = item[19].ToString();
                        UDI.UrunEkle(YeniUrun);
                    }
                List<UrunIslemler.UrunTut> IDyeGore = UDI.UrunIdyeGore(UrunId);
                foreach (UrunIslemler.UrunTut item in IDyeGore)
                {
                   
                    UrunADi.Text = item.UrunADi;
                    KatID.Text = item.KatAdi.ToString();
                    UrunStokAdet.Text = item.UrunStokAdet.ToString();
                    UrunAlisFiyati.Text = item.UrunAlisFiyati.ToString();
                    UrunSatisFiyati.Text = item.UrunSatisFiyati.ToString();
                    UrunKDV.Text = item.UrunKDV.ToString();
                    UrunMaxIskontoOrani.Text = item.UrunMaxIskontoOrani.ToString();
                    UrunIskontoOrani.Text = item.UrunIskontoOrani.ToString();
                    UrunSiparisICinMinStok.Text = item.UrunSiparisICinMinStok.ToString();
                    UrunSatistaMi.Checked = item.UrunSatistaMi;
                    UrunSatisGirisTarihi.Text = item.UrunSatisGirisTarihi.ToString();
                    UrunSatisCikisTarihi.Text = item.UrunSatisCikisTarihi.ToString();
                    UrunSatisCikisSebebi.Text = item.UrunSatisCikisSebebi.ToString();
                    UrunMuhasebeHesapNo.Text = item.UrunMuhasebeHesapNo.ToString();
                    UrunBirimi.Text = item.UrunBirimi.ToString();
                    UrunParaCinsi.Text = item.UrunParaCinsi.ToString();
                    UrunKurSabitMi.Checked = item.UrunKurSabitMi;
                    UrunKuru.Text = item.UrunKuru.ToString();
                    UDI.UrunTutClear(YeniUrun);
                    
                }
            }
            catch
            {

            }
        }

        private void bt_urunsec_Click(object sender, EventArgs e)
        {

            UrunListesiFrm Urunlistesi = new Depo.UrunListesiFrm();
            Urunlistesi.AcanForm = this;
            Urunlistesi.Show();
        }

      


       
    }
}
